Logic circuitry continues to be the platform on which modern electronic devices are built. In recent years, advancements in electronic devices and their associated software have crystallized the demand for logic circuitry that is faster, smaller, and more efficient. Currently, logic circuitry (e.g., application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), and the like) is dominated by the use of design paradigms that have been in place since the dawn of computing technology. Specifically, current logic circuits utilize a large number of individual AND, OR, NOT, etc. logic gates connected to one another in a particular fashion to perform a particular operation. Although generally accepted as standard practice, the use of these conventional design paradigms is quickly resulting in a plateau in the size, speed, and efficiency achievable by the resulting logic circuitry.
In an effort to continue improving the capabilities logic circuitry, many designers and manufacturers have started to explore alternative design strategies. Threshold logic gates have been studied and determined to result in more compact and faster circuits when compared to conventional logic gate equivalents. As defined herein, threshold logic gates are circuits that evaluate a threshold function. A threshold function (denoted as ƒ=[w1, w2, . . . , wn|T]) is a Boolean function that receives multiple input values and a weight associated with each input value and computes a weighted sum of the input values and their corresponding weights. If the value of the weighted sum is above a predetermined threshold, the output of the threshold function is 1, whereas if the value of the weighted sum is below the predetermined threshold, the output of the threshold function is 0, as illustrated in Equation 1:
                              f          ⁡                      (                                          x                1                            ,                              x                2                            ,              …              ⁢                                                          ,                              x                n                                      )                          =                  {                                                                      1                                                                                            if                      ⁢                                                                                          ⁢                                                                        ∑                                                      i                            =                            1                                                    n                                                ⁢                                                                              w                            i                                                    ⁢                                                      x                            i                                                                                                                ≥                    T                                                                                                0                                                  otherwise                                                      .                                              (        1        )            where ƒ(x1, x2, . . . , xn) is the Boolean function including input values x1, x2, . . . , xn, w1, w2, . . . , wi are the weights associated with each variable in the Boolean function, and T is the predetermined threshold. Each operation in a Boolean function can be expressed as a threshold function. Further, multiple Boolean operations in a Boolean function can often be expressed as a single threshold function. Since threshold logic gates evaluate a threshold function, a single threshold logic gate may replace a large number of conventional logic gates that would otherwise be required to perform a particular operation, thereby saving space and resulting in improvements in computation speed and efficiency.
Despite their advantages in size, speed, and efficiency, threshold logic gates have not entered the mainstream due to a lack of efficient and reliable gate implementations and a lack of necessary infrastructure for the design and programming of logic circuits including threshold logic gates. Specifically, threshold logic gates are known to be highly sensitive to manufacturing tolerances, which often results in an undesirable or unpredictable output. Further, the widespread adoption of the logic circuitry design paradigms discussed above has resulted in a large obstacle in the implementation of any logic gates that deviate from current design principles. As a result, logic circuitry including threshold logic gates, and in particular programmable logic circuitry including threshold logic gates, is nearly non-existent.
Accordingly, there is a present need for a threshold logic gate that is reliable, fast, small, and efficient. Further, there is a need for programmable logic circuitry incorporating one or more threshold logic gates that is compatible with current logic circuitry design paradigms.